package contactbook;

import java.util.List;
import java.util.Set;

import contactbook.dao.AccountDAOInterface;
import contactbook.dao.ContactDAOInterface;
import contactbook.dao.GroupDAOInterface;
import contactbook.model.Contact;
import contactbook.service.ContactServiceInterface;
import contactbook.service.ServiceLocator;

public class ContactClient implements ContactServiceInterface{

	private ContactServiceInterface contactService;
	
	public ContactClient() {
		ServiceLocator sl = ServiceLocator.getInstance();
		contactService = sl.getContactService();
	}
	
	@Override
	public void login(String login, String password) {
		contactService.login(login, password);
	}
	
	@Override
	public void logout() {
		contactService.logout();
	}
	
	@Override
	public Contact add(Contact contact, int groupId) {
		return contactService.add(contact, groupId);
	}
	
	@Override
	public Contact add(Contact contact) {
		return contactService.add(contact);
	}
	
	@Override
	public void update(Contact contact) {
		contactService.update(contact);
	}
	

	@Override
	public void delete(int contactId) {
		contactService.delete(contactId);
	}
	
	@Override
	public Contact getContactById(int contactId) {
		return contactService.getContactById(contactId);
	}
	
	@Override
	public List<Contact> getContactsByName(String firstName, String LastName) {
		return contactService.getContactsByName(firstName, LastName);
	}
	
	@Override
	public Set<Contact> getContacts() {
		return contactService.getContacts();
	}

	@Override
	public boolean isLogged() {
		return contactService.isLogged();
	}

	@Override
	public void setDAO(ContactDAOInterface contactDao,
			GroupDAOInterface groupDao, AccountDAOInterface accountDao) {
		contactService.setDAO(contactDao, groupDao, accountDao);
		
	}

	@Override
	public Set<Contact> getContacts(int groupId) {
		return contactService.getContacts(groupId);
	}

	@Override
	public List<Contact> getContactsWithoutGroup() {
		return contactService.getContactsWithoutGroup();
	}
}
